// wx.cloud.init({ env: "mybook-7n7f9" });
const bookDB = wx.cloud.database({ env: 'mybook-7n7f9' }) //初始化数据库

Component({

  behaviors: [],

  properties: {
    bookId: { // 属性名
      type: String, // 类型（必填），目前接受的类型包括：String, Number, Boolean, Object, Array, null（表示任意类型）
      value: '', // 属性初始值（可选），如果未指定则会根据类型选择一个
      observer: function (newVal, oldVal) {  
      } // 属性被改变时执行的函数（可选），也可以写成在methods段中定义的方法名字符串, 如：'_propertyChange'
    },
    myProperty2: String // 简化的定义方式
  },
  data: {
    show:false,
    focus:false,
    comment:'',//用户输入的评论信息
    getComment:'',//从云数据库中获取该用户的评论信息
    commentImage:[],
    fileID:[],
    placeholder:'请输入150个字以内评论内容'
 
  }, // 私有数据，可用于模版渲染

  lifetimes: {
    // 生命周期函数，可以为函数，或一个在methods段中定义的方法名
    attached: function () {
      this._getComment()
    },
    moved: function () { },
    detached: function () {}
  },
  // 生命周期函数，可以为函数，或一个在methods段中定义的方法名
  attached: function () {}, // 此处attached的声明会被lifetimes字段中的声明覆盖
  ready: function () {},

  pageLifetimes: {
    // 组件所在页面的生命周期函数
    show: function () {},
  },

  methods: {

    //获取评论信息
    _getComment:function(){
      let self = this
      wx.cloud.callFunction({ //调用云函数获取openid
        name: 'login',
      }).then(res => {
        
        bookDB.collection('comments').where({
          // _openid: res.result.openid,
          bookId: self.data.bookId
        }).get({
          success: function (res) {
            // console.log(res.data)
            res.data.reverse().map(v => {
              if(v == ''){
                return false
              }else{
                self.setData({
                  show:true,
                  getComment: v
                })

                console.log(self.data.getComment)
              }

            })
          }
        })
      })


    
    },

      //提交评论内容
    _bindFormSubmit: function (e) {
  
      let self = this

      wx.showLoading({
        title: '评论中',
      })

      self.setData({
        comment: e.detail.value.textarea
      })

      wx.getUserInfo({
        success: function (res) {

          //判断评论内容是否为空，为空则不能提交，不为空则可以提交
          if (self.data.comment == '' || self.data.comment == null) {
            wx.showToast({
              title: '评论内容不能为空！',
              icon: 'none',
              duration: 2000
            })
            self.setData({
              focus: true
            })
            return
          } else {

            //判断图书是否评论过
            wx.cloud.callFunction({ //调用云函数获取openid
              name: 'login',
            }).then(res => {

              bookDB.collection('comments').where({//查询该用户是否对该图书评论过
                _openid: res.result.openid,
                bookId: self.data.bookId
              }).get({
                success: function (res) {

                  if (res.data == '') { //如果没有评论过，则把评论信息存储到云数据库
                    bookDB.collection('books').where({
                      bookId: self.data.bookId
                    }).get({
                      success: function (res) {

                        self.uploadFile();
                        
                        // let commentInfo = ''
                        // res.data.map(book => { //获取图书信息
                        //   commentInfo = {
                        //     userName: book.userName, //添加人用户名
                        //     avatarUrl: book.avatarUrl, //添加人用户名
                        //     bookTitle: book.bookTitle, //书名
                        //     bookId: book.bookId, //图书id
                        //     bookCount: book.bookCount,//浏览量
                        //     bookRating: book.bookRating, //评分
                        //     bookComment: self.data.comment, //评论信息
                        //     fileID: self.data.fileID, //上传的图片
                        //     commentTime: new Date() //评论日期
                        //   }
                        // })

                        // bookDB.collection('comments').add({ //将评论信息存储到云数据库
                        //   data: commentInfo
                        // }).then(res => {
                        //   wx.hideLoading();
                        //   wx.showToast({
                        //     title: '评论成功！',
                        //     // icon: 'success',
                        //     duration: 1000
                        //   })
                        // })

                        
                      }
                    })

                  } else {
                    wx.hideLoading();
                    wx.showToast({
                      title: '您已评论过该图书了！',
                      icon: 'success',
                      duration: 2000
                    })
                    return false;
                  }
                }
              })
            })
          }
        },
        fail: function (res) {
          wx.showModal({
            title: '评论失败！',
            content: '您尚未登录，请先登录再评论！',
            success(res) {
              if (res.confirm) {
                wx.switchTab({
                  url: '../../pages/my/my',
                  success: function (res) {
                    console.log('这是登录页面')
                  }
                })
              } else if (res.cancel) {
                return
              }
            }
          })
        }

      })
    },
    // https://6d79-mycloud-ea834-1300035580.tcb.qcloud.la/
    // https://6d79-mycloud-ea834-1300035580.tcb.qcloud.la/
    // https://6d79-mycloud-ea834-1300035580.tcb.qcloud.la/
    // https://6d79-mybook-7n7f9-1300035580.tcb.qcloud.la/

    // https://douban.uieee.com
    // https://6d79-mycloud-ea834-1300035580.tcb.qcloud.la
    // https://6d79-mybook-7n7f9-1300035580.tcb.qcloud.la
    // https://tcb-api.tencentcloudapi.com


    // xxxx: async function () {
    //   var res = await wx.cloud.uploadFile({
    //     cloudPath: 'xxx',
    //     filePath: 'xxx'
    //   })
    //   console.log(res)
    // }
    uploadFile() {

      let self = this
      //上传图片到云存储
      var promiseArr = [];
      let commentInfo = {}

      for (var i = 0; i < self.data.commentImage.length; i++) {
        promiseArr.push(new Promise((reslove, reject) => {

          var item = self.data.commentImage[i];
          var suffix = /\.\w+$/.exec(item)[0];//获取文件扩展名的正则表达式
          
          // let cloudPath = 'https://6d79-mybook-7n7f9-1300035580.tcb.qcloud.la' + new Date().getTime() + suffix;

          wx.cloud.uploadFile({
            cloudPath: new Date().getTime() + suffix, //上传到云端的路径
            filePath: item, // 小程序临时文件路径
            encoding: 'base64', //编码格式
            success: res => {
              // get resource ID（返回文件ID）
              console.log(res.fileID)
          
              this.setData({
                fileID: self.data.fileID.concat(res.fileID)
              });
              commentInfo.fileID = self.data.fileID
              reslove();//一定要调用
            },
            fail: err => {
              // handle error
            }
          })

        }))
      }

      Promise.all(promiseArr).then(res => {
        
        bookDB.collection('comments').add({
          data: commentInfo
          // {
          //   fileID: self.data.fileID
          // }
        }).then(res => {
          wx.hideLoading();
          wx.showToast({
            title: '评论成功！',
          })

          self._getComment()

        }).catch(err => {
          wx.hideLoading();
          wx.showToast({
            title: '评论失败！',
          })
        })

      })

      
      bookDB.collection('books').where({
        bookId: self.data.bookId
      }).get({
        success: function (res) {
          res.data.map(book => { //获取图书信息
            commentInfo = {
              userName: book.userName, //添加人用户名
              avatarUrl: book.avatarUrl, //添加人用户名
              bookTitle: book.bookTitle, //书名
              bookId: book.bookId, //图书id
              bookCount: book.bookCount,//浏览量
              bookRating: book.bookRating, //评分
              bookComment: self.data.comment, //评论信息
              fileID: self.data.fileID, //上传的图片
              commentTime: new Date() //评论日期
            }
          })
          
        }
      })



    },
    //提交评论内容
    // _bindFormSubmit: function (e) {

    //   let self = this

    //   wx.showLoading({
    //     title: '评论中',
    //   })

    //   self.setData({
    //     comment: e.detail.value.textarea
    //   })
     
    //   wx.getUserInfo({
    //     success: function (res) {
          
    //         //判断评论内容是否为空，为空则不能提交，不为空则可以提交
    //       if (self.data.comment == '' || self.data.comment == null) {
    //         wx.showToast({
    //           title: '评论内容不能为空！',
    //           icon: 'none',
    //           duration: 2000
    //         })
    //         self.setData({
    //           focus: true
    //         })
    //         return
    //       } else {
            
    //         //判断图书是否评论过
    //         wx.cloud.callFunction({ //调用云函数获取openid
    //           name: 'login',
    //         }).then(res => {
              
    //           bookDB.collection('comments').where({//查询该用户是否对该图书评论过
    //             _openid: res.result.openid,
    //             bookId: self.data.bookId
    //           }).get({
    //             success: function (res) {
              
    //               if (res.data == '') { //如果没有评论过，则把评论信息存储到云数据库
    //                 bookDB.collection('books').where({
    //                   bookId: self.data.bookId
    //                 }).get({
    //                   success: function (res) {

    //                     self.uploadFile();

    //                     let commentInfo = ''
    //                     res.data.map(book => { //获取图书信息
    //                       commentInfo = {
    //                         userName: book.userName, //添加人用户名
    //                         avatarUrl: book.avatarUrl, //添加人用户名
    //                         bookTitle: book.bookTitle, //书名
    //                         bookId: book.bookId, //图书id
    //                         bookCount: book.bookCount,//浏览量
    //                         bookRating: book.bookRating, //评分
    //                         bookComment: self.data.comment, //评论信息
    //                         fileID: self.data.fileID, //上传的图片
    //                         commentTime: new Date() //评论日期
    //                       }
    //                     })

    //                     bookDB.collection('comments').add({ //将评论信息存储到云数据库
    //                       data: commentInfo
    //                     }).then(res => {
    //                       wx.hideLoading();
    //                       wx.showToast({
    //                         title: '评论成功！',
    //                         // icon: 'success',
    //                         duration: 1000
    //                       })
    //                     })

    //                     self._getComment()
    //                   }
    //                 })
                    
    //               }else{
    //                 wx.hideLoading();
    //                 wx.showToast({
    //                   title: '您已评论过该图书了！',
    //                   icon: 'success',
    //                   duration: 2000
    //                 })
    //                 return false;
    //               }
    //             }
    //           })
    //         })
    //       }
    //     },
    //     fail:function(res){
    //       wx.showModal({
    //         title: '评论失败！',
    //         content: '您尚未登录，请先登录再评论！',
    //         success(res) {
    //           if (res.confirm) {
    //             wx.switchTab({
    //               url: '../../pages/my/my',
    //               success:function(res){
    //                 console.log('这是登录页面')
    //               }
    //             })
    //           } else if (res.cancel) {
    //             return
    //           }
    //         }
    //       }) 
    //     }

    //   })
    // },



    //上传图片
    uploadImg(){
      let self = this
      //选择图片
      wx.chooseImage({
        count: 9,
        sizeType: ['original', 'compressed'],
        sourceType: ['album', 'camera'],
        success(res) {
          // tempFilePath可以作为img标签的src属性显示图片
          const tempFilePaths = res.tempFilePaths
          self.setData({
            commentImage: self.data.commentImage.concat(tempFilePaths)
          })
        }
      })
    }

    // onMyButtonTap: function () {
    //   this.setData({
    //     // 更新属性和数据的方法与更新页面数据的方法类似
    //     myProperty: 'Test'
    //   })
    // },
    // _myPrivateMethod: function () {
    //   // 内部方法建议以下划线开头
    //   this.replaceDataOnPath(['A', 0, 'B'], 'myPrivateData') // 这里将 data.A[0].B 设为 'myPrivateData'
    //   this.applyDataUpdates()
    // },
    // _propertyChange: function (newVal, oldVal) {

    // }
  }

})